package br.edu.faculdadeprojecao.DAO;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.edu.faculdadeprojecao.infra.JPAUtil;
import br.edu.faculdadeprojecao.modelo.Formacao;
import br.edu.faculdadeprojecao.modelo.Usuario;

public final class FormacaoDAO extends GenericDAO {



	public void delete(Formacao f) {

		EntityManager em = new JPAUtil().getEntityManager();
		em.getTransaction().begin();

		try {
			// System.out.println(u.getId());
			em.remove(em.find(Formacao.class, f.getId()));
			em.getTransaction().commit();
		} catch (Exception e) {
			e.printStackTrace();
			em.getTransaction().rollback();
			System.out.println("Nao excluiu!!");
		} finally {
			em.close();
		}
	}



	public Formacao buscaPorID(Integer id) {

		EntityManager em = new JPAUtil().getEntityManager();
		em.getTransaction().begin();
		Formacao f = em.getReference(Formacao.class, id);
		em.close();

		return f;
	}

	public List<Formacao> formacaoPorUsuario(Usuario u) {

		EntityManager em = new JPAUtil().getEntityManager();
		em.getTransaction().begin();

		Query query = em
				.createQuery("select f from Formacao f where f.usuario = :usuario order by f.descricao asc");
		query.setParameter("usuario", u);
		@SuppressWarnings("unchecked")
		List<Formacao> list = query.getResultList();

		em.close();

		return list;
	}

}